As elastic cloud architectures and dynamic resource allocation evolve and as usage of mobile computer operating systems and virtual machines grows, Software-Defined Networking (SDN) has gained increasing relevance in networking systems. SDN is an approach to building computer networking equipment and software that separates and abstracts the control plane and data plane of networking systems. SDN decouples the control plane that makes decisions about where traffic is sent from the underlying data plane that forwards traffic to the selected destination. SDN allows network administrators to manage network services through abstraction of lower level functionality into virtual services through a central controller. Such a control layer allows network operators to specify network services without coupling the specifications with network interfaces, enabling network nodes to move between interfaces without changing identities or violating specifications.